﻿/*
**************图片预加载插件******************
///参数设置：
scaling     是否等比例自动缩放
width       图片最大高
height      图片最大宽
loadpic     加载中的图片路径
*/
jQuery.fn.LoadImage = function (scaling, width, height, loadpic, fade) {
    if (loadpic == null) {
        loadpic = "/Content/Image/loading.gif";
    }
    return this.each(function () {
        var t = $(this);
        var src = $(this).attr("src");
        var img = new Image();
        //alert("Loading...")
        img.src = src;
        //自动缩放图片
        var autoScaling = function () {
            if (scaling) {
                if (img.width > 0 && img.height > 0) {
                    if (img.width / img.height >= width / height) {
                        if (img.width > width) {
                            t.width(width);
                            t.height((img.height * width) / img.width);
                        } else {
                            t.width(img.width);
                            t.height(img.height);
                        }
                    } else {
                        if (img.height > height) {
                            t.height(height);
                            t.width((img.width * height) / img.height);
                        } else {
                            t.width(img.width);
                            t.height(img.height);
                        }
                    }
                }
            }
        }
        //处理ff下会自动读取缓存图片
        if (img.complete) {
            //      alert("getToCache!");
            autoScaling();
            if (!fade) {
                t.hide();
                t.attr("src", this.src);
                t.fadeIn("slow");
                t.show();
            } else {
                t.attr("src", this.src);
            }
            return;
        }
        $(this).attr("src", "");
        if (!fade) {
            var loading = $("<img alt=\"加载中...\" title=\"图片加载中...\" src=\"" + loadpic + "\" />");
            t.hide();
            t.after(loading);
            $(img).load(function () {
                autoScaling();
                loading.remove();
                t.attr("src", this.src);
                t.fadeIn("slow");
                t.show();
                //alert("finally!")
            });
        } else {
            t.hide();
            $(img).load(function () {
                autoScaling();
                t.attr("src", this.src);
                t.fadeIn("slow");
                t.show();
                //alert("finally!")
            });
        }
    });
}
